In recent years, consumer electronics devices that access, store and play various kinds of content (e.g., music, video, etc.) have become increasingly popular. Such devices include, iPods that download and store music and video, network-enabled storage drives that store data, music, and video, satellite radios, and digital video recorders (DVRs) that store a variety of entertainment programming. At the same time, wireless networks have also become common in many households. Many content sources such as iPods, storage drives, satellite radios, and DVRs are designed to share the content they receive and/or store with other media devices via a home network.
It is very common for a user to experience (e.g., view or listen to) networked digital media using a rendering device like a cell phone, personal computer (“PC”), portable music player, or other consumer electronics device. Typical rendering devices may access digital media from a variety of sources (e.g., broadcast radio, satellite radio, local memory, a local or remote network, or a player device) and play the media back locally or on remotely connected speakers.
When a user has already started a session to experience digital media and then decides to change the physical location of the rendering device and/or change playback to a new rendering device, the user has to stop experiencing their selected digital media for the duration of the change. For example, a user may be experiencing digital media using a networked audio/video receiver (“AVR”) and then switch the playback to a cell phone in the same or other location or network. In these cases, the user has to stop the current playback session on the AVR and find the same digital media content on the new rendering device, restart the service or session, and fast forward to the same point in the playback as they were in the original session.
In effect, experiencing digital media is very much governed by the type and location of the rendering devices, even though multiple and capable rending devices may be available to a user.
Current media transfer methods are limited to the transfer of digital media originating (i.e., hosted) on a first networked device to a second networked device. For example, streaming digital media content that originates on a portable device may be transferred to a host device. These current methods, however, do not address the transfer of digital media from a first device to a second device wherein the digital media originates from a third media device (e.g., a media server or service). Furthermore, the current methods do not address the transfer of digital media content from a first device to a second device when the media content is streamed from a web-based server or service, whether such content is a media stream (for example, a radio station) or a finite media file.
In addition, existing network infrastructure makes seamless transfer difficult. The TCP/IP protocol suite, for example, is the basis for the networking infrastructure in the Internet. At the network layer, the Internet is viewed as a set of networks or autonomous systems connected together in a hierarchical manner. Internet Protocol (or “IP”) is the mechanism that connects these networks together. Its basic function is to deliver data from a source to a destination independent of the physical location of the two. IP identifies each node uniquely, using an IP address that designates its physical attachment to the Internet.
IP decides the next-hop by determining the network information from the destination IP address of the packet. On the other hand, higher level layers like TCP maintain information about connections that are indexed by a quadruplet containing the IP addresses of both the endpoints and the port numbers. Thus, a seamless transfer a streaming session using TCP/IP networking from one media rendering device to another media rendering device faces many challenges. For example, the destination address in the packets comprising the streaming audio needs to be changed from the address of the original rendering device to the address of the new rendering device. Further, an existing TCP connection may rely on keeping the IP address the same to maintain the connection; changing the IP address in mid-stream may cause the connection to be disrupted.
In any case, existing methods do not transfer the media quickly enough to ensure an uninterrupted media experience for the consumer, nor do they address the need to synchronize the media rendering when multiple rendering devices are playing back the same content. Clearly, a need exists for a robust, adaptable way to transfer different kinds and sources of media to and from a wide variety of devices without stuttering and interruption.